import { updateAllTorrentScores } from "../controllers/scoringController";

let isRunning = false;

/**
 * 定时更新所有需要更新的种子评分
 */
export const initScoreUpdater = () => {
  // 每小时运行一次
  const interval = 6 * 1000; // 1小时

  const updateScores = async () => {
    if (isRunning) {
      console.log("评分更新任务已在运行，跳过此次执行");
      return;
    }

    try {
      isRunning = true;
      console.log("开始批量更新种子评分...");
      const result = await updateAllTorrentScores();
      console.log(`评分更新任务完成，已更新 ${result.updated} 个种子`);
    } catch (error) {
      console.error("评分更新任务出错:", error);
    } finally {
      isRunning = false;
    }
  };

  // 启动时立即运行一次
  setTimeout(() => {
    updateScores().catch((error) => {
      console.error("初始评分更新失败:", error);
    });
  }, 30000); // 延迟30秒启动，确保服务器已完全启动

  // 设置定时任务
  setInterval(updateScores, interval);

  console.log("种子评分更新调度器已启动");
};

// 为了向后兼容性，保留默认导出
export default initScoreUpdater;
